package com.bjpowernode.controller;

import com.bjpowernode.entity.TTran;
import com.bjpowernode.query.TranQuery;
import com.bjpowernode.result.Result;
import com.bjpowernode.service.TranService;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

/**
 * 交易记录控制器
 * 处理交易记录相关的HTTP请求，如添加、查询等
 */
@RestController
public class TranController {
    @Resource
    private TranService tranService;

    /**
     * 添加交易记录
     * @param tranQuery 交易查询对象，包含要添加的交易信息
     * @return 返回操作结果，成功返回OK，失败返回FAIL
     */
    @PostMapping("/api/tran")
    public Result addTran(@RequestBody TranQuery tranQuery) {
        // 调用服务层方法添加交易记录
        int count = tranService.addTran(tranQuery);
        // 根据添加结果返回相应的操作结果
        return count > 0 ? Result.OK() : Result.FAIL();
    }

    /**
     * 分页查询交易记录列表
     * @param current 当前页码
     * @return 返回分页信息对象，包含交易记录列表
     */
    @GetMapping("/api/trans")
    public Result getTranByPage(Integer current) {
        // 调用服务层方法分页查询交易记录列表
        PageInfo<TTran> pageInfo = tranService.getTranByPage(current);
        // 返回查询结果
        return Result.OK(pageInfo);
    }

    /**
     * 根据ID获取交易详情
     *
     * @param id 交易ID
     * @return 包含交易详情的结果对象
     */
    @GetMapping("/api/tran/{id}")
    public Result getTranById(@PathVariable Integer id) {
        // 调用服务层方法，根据ID获取交易详情
        TTran tran = tranService.getTranById(id);
        // 返回包含交易详情的成功结果
        return Result.OK(tran);
    }
}
